home *** CD-ROM | disk | FTP | other *** search
/ PC Player 2004 May / pc player 2004-05.iso / Demos / FarCry / Data1.cab / _B9047FA4A7FB4BD7A60E0DFCEFDA4BAF < prev    next >
Encoding:
Text File  |  2004-01-06  |  1.3 KB  |  42 lines

  1.  
  2.       #include "../CGVPMacro.csi"
  3.  
  4.  
  5.       VertAttributes { POSITION_3 PRIM_COLOR }
  6.       
  7.       MainInput { VIEWPROJ_MATRIX, uniform float4 SunDirect, uniform float3 Tangent, uniform float3 ScaleBumpTex, uniform float4 TexGen0, uniform float4 TexGen1 }
  8.       DeclarationsScript
  9.       {
  10.         IN_C0
  11.         OUT_T0_T1_T2_C0
  12.       }
  13.       PositionScript = PosCommon                 
  14.       CoreScript
  15.       {
  16.         float2 vTex;
  17.         vTex.x = dot(TexGen0, vPos);
  18.         vTex.y = dot(TexGen1, vPos);
  19.         OUT.Tex1.xy = vTex * ScaleBumpTex.xy;
  20.         OUT.Tex0.xy = vTex;
  21.         
  22.         float3 normal = IN.Color.xyz * (2).xxx - IN.Position.www;
  23.         //float3 normal;
  24.         //normal.x=0;
  25.         //normal.y=0;
  26.         //normal.z=1;
  27.         
  28.         float3 binorm = normalize(cross(Tangent, normal));
  29.         float3 tang   = cross(binorm, normal);
  30.  
  31.         // compute the 3x3 tranform from tangent space to object space
  32.         float3x3 objToTangentSpace;
  33.         objToTangentSpace[0] = tang;
  34.         objToTangentSpace[1] = binorm;
  35.         objToTangentSpace[2] = normal;
  36.  
  37.         // store normalized light vector
  38.         float3 lightVec = mul(objToTangentSpace, SunDirect.xyz);
  39.         
  40.         OUT.Tex2.xyz = lightVec;
  41.       }
  42.